/****************************************************************************
*					Actor
*
*	Description:	This class provides an extended representation 
*					of the structure of Probabilisitc Graphical Model:			
*					- its primary service is to facilitate 
*						working with rates that reflect the expected times 
*						in which variables tend to change their values 
*					
****************************************************************************/

#ifndef _Actor_H
#define _Actor_H

#include <vector>
#include "DataSet.h"
#include "Feature.h"

class Actor {
  private:

  protected:

  public:

	/* Data */
	  // Actor attributes: stores as many vectors as there are attributes,
	  // each vector indicates the relation between an attribute of this actor
	  // and the same attribute for all the other actors
	std::vector<std::vector <short>> attributes;	

	  // Network structure-dependent actor attributes:
	  // indegree - the count of the number of active incoming Y links (Yij tells if i is listening to j)
	  // outdegree - the count of the number of active outgoing Y links (Yji tells if j is listening to i)
	  // degree - the count of the number of active X links (Xij tells if i and j are friends)
	unsigned int indegree;
	unsigned int outdegree;
	unsigned int degree;

	/* Functions */
	  // Standard constructor - empty one
	Actor();
      
	  // Standard destructor - empty one
    ~Actor();

}; // end of class

#endif // _Actor_H
